Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), phase change random access memory (PCRAM), and flash memory, among other types of memory. Resistance variable memory devices, such as PCRAM devices, can include a structural phase change material such as a chalcogenide alloy, for instance, which can be programmed into different resistivity states to store data. The phase change memory cells are nonvolatile and the particular data stored in a phase change memory cell can be read by sensing the cell's resistance, e.g., by sensing current and/or voltage variations based on the resistance of the phase change material.
In cases in which the resistance variable memory device includes a chalcogenide alloy, the chalcogenide alloy can exhibit a reversible structural phase change, e.g., from amorphous to crystalline. A small volume of the chalcogenide alloy can be integrated into a circuit that can allow the cell to act as a fast switching programmable resistor. This programmable resistor can exhibit greater than 40 times the dynamic range of resistivity between the crystalline state (low resistivity) and the amorphous state (high resistivity), and is also capable of exhibiting multiple intermediate states that allow multi-bit storage in each cell. That is, resistance variable memories may achieve multi-level cell (MLC) functionality via programming of memory cells to one of a number of different resistance levels.
Multilevel programming of phase change memory cells can be challenging due to factors such as the sensitivity of the cells to applied programming pulses. For instance, it can be difficult to provide adequate separation between adjacent intermediate resistance states, e.g., resistance states between the amorphous state and the crystalline state, due to a rapid transition which can occur between the amorphous and crystalline states during programming. Inadequate separation between adjacent states can lead to problems such as data read errors.